src1=client.cc
src2=server.cc
des1=client_v1.exe
des2=server_v1.exe
des3=client_v2.exe
des4=server_v2.exe

.PHONY:all
all:$(des1) $(des2) $(des3) $(des4)

$(des1):$(src1)
	@g++ -Dv1 $(src1) -o $(des1) -std=c++11
	@echo "compile $(src1) to $(des1)"
$(des2):$(src2)
	@g++ -Dv1 $^ -o $@ -std=c++11
	@echo "compile $^ to $@"
$(des3):$(src1)
	@g++ -Dv2 $^ -o $@ -std=c++11
	@echo "compile $^ to $@"
$(des4):$(src2)
	@g++ -Dv2 $^ -o $@ -std=c++11
	@echo "compile $^ to $@"
.PHONY:clean
clean:
	rm -rf $(des1) $(des2) $(des3) $(des4)